package com.atguigu.lease;

import com.atguigu.lease.common.minio.MinioConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
import org.springframework.stereotype.Component;

/**
 * @author: fenghao
 * @date: 2025/7/14 0:30
 * @description:
 *
 * 自己配置的类，误被springboot导入了，如何排除？【一共有三种解决方案】
 * 1. 少了配置类核心参数，我们就添加参数【这种是一定使用配置类的情况】
 * 2. 可以排除配置类，不让他生效【太极端，一定不使用配置类的情况】
 *  ① SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
 *      注意：这种方式排除的是springboot的自动配置的类，并不能排除我们自己定义的配置类，
 *      我们自己配置的类，不是通过springboot自动加载进来的，而是通过@ComponentScan扫描进来的
 *  ②@ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,classes = MinioConfiguration.class))
 * 3. 可能用的情况，有就生效，没有就不生效，满足我们配置minio的参数就会使用
 *      @ConditionalOnProperty(prefix = "minio",name = "username")
 *
 */
//type = FilterType.ASSIGNABLE_TYPE 表示根据类型排除，后面跟的是要排除的哪个类
//@ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,classes = MinioConfiguration.class))
@SpringBootApplication
public class AppWebApplication {
    public static void main(String[] args) {
        SpringApplication.run(AppWebApplication.class);
    }
}
